Internet searching using general search engines is a well-known process. Examples of common search engines include Google, Yahoo, AltaVista, AskJeeves, MSNSearch, HotBot, AOL Search, etc. There are also many specialized search engines that focus on particular subject matters, such as technology, sports, shopping or travel. The manner in which such search engines work is well known to those skilled in the art.
Typically, at the user level, internet searching is performed by manually entering the search terms into the search engine, either by typing the search terms or by cutting and pasting the search text into a search box on the search engine portal. The search engine then performs the search of the internet web pages and returns the results in a list form on the search engine page. These results are typically displayed in the user's web browser software. This internet search process typically requires that the search engine portal be open in a web browser and operated directly by the user. Generally, if a user wishes to conduct multiple searches on multiple search engines, each search query must be separately entered and repeated on each of the selected search engine portals. Moreover, saving the separate search results from each separate search performed on each separate search engine generally requires cutting and pasting of displayed results into a file, or otherwise saving off-line each of the search engine's resultant webpage(s), etc.
Recently, commercial search engine portals, such as WebCrawler, Yahoo and Google, have developed “toolbars” that may be installed as a plug in for web browsers. These toolbars enable users to enter the search terms in the search box in the toolbar, instead of having to go to the actual search engine portal directly. Typically, when a search is conducted using a toolbar, the user enters the search text into the search box of the toolbar and commands a search to be performed, at which time the browser is redirected to the search portal and the results displayed in the browser or in a separate window generated by the browser.
Search engines also exist that route a specific search query to each of a multiple number of other search engines, returning the results in a compiled manner, eliminating duplicates. Thus, the user does not need to separately enter the queries on each search engine. For example, WebCrawler and Dogpile are well-known search engines that forward individually entered queries to multiple other search engines (such as Google, Yahoo, MSNSearch, etc,), and compile and return non-duplicative results to the user for display in the browser. These type of engines are commonly referred to as “meta-search engines.” Such meta-search engines typically do not own a database of web pages, but instead, send search terms to the databases maintained by search engine companies. Thus, unlike search engines, metacrawlers do not crawl the web themselves to build listings. Instead, they allow searches to be sent to several search engines all at once. The results are then blended together onto one display page. However, the user must still manually enter each individual query term, and may only perform one query at a time, and the results must be individually saved.
For a more detailed review of using internet search engines, and their operation, see the following books or articles, each of which is incorporated herein by reference: (1) Google Search and Rescue for Dummies, by Brad Hill, John Wiley and Sons, Ltd. (August, 2005); (2) Search Engine Optimization for Dummies, by Peter Kent, John Wiley and Sons, Ltd. (April 2004); (3) Understanding Search Engines Mathematical Modeling and Text Retrieval (Software, Environments, Tools), by Berry and Brown, Society of Industrial and Applied Mathematics (1999); (4) Google and Other Search Engines: Visual QuickStart Guide, by Alfred Glossbrenner, et al. (May 11, 2004); (5) Web Developer.com(r) Guide to Search Engines, by Sonnenreich and Macinta, John Wiley and Sons, Ltd. (Feb. 4, 1998); (6) Developing a Search Engine from a Database Using ASP.NET and Index Server, by Paresh Joshi, Apress (ISBN: B00080ATP8, May 9, 2004); (7) The Extreme Searcher's Guide to Web Search Engines: A Handbook for the Serious Searcher, by Randolph Hock, CyberAge Books (Jul. 1, 1999); (8) Search Engines Handbook, by Fielden and Kuntz, Farland & Co (Feb. 20, 2002); and (9) “Hot Stories of 2004, 2005 Stories to Watch, Searching for more, Google and its rivals rolling out new ways to find information,” by Verne Kopytoff, San Francisco Chronicle (Dec. 24, 2004).
Another form of commercially available meta-search engine, referred to by the trademark “Grokker,” purports to differentiate itself from mainstream search engines such as Google, Yahoo and AskJeeves by helping users to dig deeper in their searches. Grokker relies on search engines to do the crawling, but lists the results differently: according to subject, so that, for example, a search for Paris gives the user a single page with several categories titled “history,” “museums,” “universities,” “hotels” and so on. The results are presented on the Web page in the shape of a sphere, and the user “drills” down within multiple layers of the sphere to refine the search to exactly what they he or she needs. Each object is labeled according to organizing principles, including date and context, so the user gets what amounts to a visual relational database that includes Web pages, documents, and pictures. The search results are not just put in files and folders, but are organized by using color, shape, size, position, and order.
Grokker purports to operate in four layers: (1) The Data Collection Layer: after the user enters a query, Grokker's data collection layer retrieves the query results from all selected sources. Grokker relies primarily on non-disruptive xml data feeds to retrieve results; (2) The Content Analytics Layer: once results are retrieved, Grokker analyzes metadata, document contents, and other information to organize results into categories; (3) The Data Filtering Layer: Grokker also normalizes data from disparate sources with uniform attribute tagging so that the end user can understand the relationships among results and more efficiently explore and understand returned links and documents; and (4) The Visualization API: The visualization API displays the normalized, topically organized results in easy to navigate visual formats that allow viewers to explore large sets of results, filter results to pinpoint essential data, and leverage the results to create new knowledge, research and products. See “Groxis moves up in the world, new office, funding for Grokker Firm,” by Matt Marshall, Mercury News (Oct. 18, 2004); “Out-Googling Google,” by John Quain, PC Magazine (Jan. 14, 2004); “Groxis Launches Grokker E.D.U. For the Education Market,” by Paula J. Hane, Information Today (Dec. 20, 2004); each of which is incorporated herein by reference.
“Pull down,” “pop down,” or “drop down” menus (hereinafter collectively referred to as “pull down” or “display” menus) used in text or graphics generating or reading programs are well known. In general, such display menus give the user a list of specific items to choose from, tasks to perform, or preferences to be selected. These items are typically referred to as “menu options,” and generally are associated with a broader function button or with a specific item contained within the window's toolbars. For instance, at the top of a display window, there are usually the words “file,” “edit,” “view,” “tools,” etc. Clicking on any of these words typically results in a pull-down menu providing more precise capabilities or available operations under this heading that the user may then select. Often, these actions result in series of “nested” pull-down menus.
Similarly, in a typical word processing program, if one highlights a word of text and right clicks the highlighted word, a menu typically pops up giving the user several operations that he or she may then select, such as “cut,” “paste,” “copy,” “spell checking,” “translate,” “synonyms,” “font,” “formatting,” etc. Pull-down menus typically hide the options until the user needs them. Once a menu has been invoked, the user then moves the mouse pointer over the list to an item to make his or her menu choice and clicks his mouse button on the menu item. Alternatively, the user can simply move the mouse pointer to an area other than the menu, and clicks to abort the menu. Sometimes the user's choice is selected as soon as he or she clicks on it. For representative design information on menu creation and use in a computer graphical interface, see U.S. Pat. Nos. 6,957,396, 6,956,593 and 6,918,091, each of which is incorporated herein by reference.
Cursor hovering to invoke helpful information in displays is also well known. For example, hovering the cursor over an HTML link on a webpage will many times cause an information window to open giving some detail or information about the link. Hovering the cursor over one of the many icons on the desktop may invoke the display of an information window describing something about the icon's functionality or purpose. Many of the operation buttons (typically on the toolbars) of many popular windows programs will display an information box if the cursor is allowed to hover over one of them. For more detailed information on creating link hovers, see U.S. Pat. Nos. 6,938,221, 6,834,372 and 6,828,988, incorporated herein by reference. For more detailed information on building websites, programming and creating text, graphics and menus, see the following, each of which is incorporated herein by reference: Beginning Programming for Dummies, Wallace Wang, For Dummies (December 2003); Build Your Own ASP.NET Website Using C# & VB.NET, by Zak Ruvalcaba, SitePoint Pty Ltd., 1 edition (Mar. 1, 2004); ASP.NET Website Programming: Problem—Design—Solution, Visual Basic .NET Edition, by Bellinaso and Hoffman, Wrox, New Ed edition (Jan. 16, 2003); Excel VBA Programming For Dummies, by John Walkenbach, For Dummies (Aug. 20, 2004); Microsoft Windows Internals, Fourth Edition: Microsoft Windows Server™ 2003, Windows XP, and Windows 2000 (Pro-Developer), by Russinovich and Solomon, Microsoft Press (December 2004).
It is also known to provide increased user interface capabilities with alternative input devices such as touchpads, joysticks, a roller mouse and touch sensitive screens, for example. Each of these existing devices or methods may include multiple programmable input methods, such as right and/or left click buttons, or touchscreens or pads, that are used by the operator to highlight and select text, initiate functions, pull down menus, etc. For touchpads, joysticks, etc. (incorporating gesture recognition features), the number of times a menu or word is “tapped” can initiate different operations (for example, by acting in a manner similar to mouse clicks). For more detailed information on programming and using input devices, see the following, each of which is incorporated herein by reference: Input Devices (Computer Graphics—Technology and Applications), by Sol Sherr, Academic Press (Mar. 1, 1988); “Keying in on the right input device,” by Edwin Powell, Office Solutions, Quality Publishing, Inc., Volume 19, Issue 6, Pages 34-36 (Jun. 30, 2002); “The Ergonomics of Computer Pointing Devices,” by Douglas et al, Advanced Perspectives in Applied Computing (Jun. 1, 1997); and U.S. Pat. Nos. 6,927,758, 6,892,597, 6,798,397, 6,781,570, 6,756,965, 6,740,863, 6,646,632 and 6,507,338.
It is further known to use speech recognition as an input device to computers. For more details on speech recognition use in computers, see the following references, incorporated herein by reference: Computer Speech: Recognition, Compression, Synthesis, Schroeder, Quast and Strube, Springer Press (Nov. 18, 2004); VoiceXML: Introduction to Developing Speech Applications, by James Larson, Prentice Hall, 1st edition (Jun. 17, 2002); and U.S. Pat. Nos. 6,985,865, 6,993,486 and 6,990,445. Gaze tracking has also been used as an input device. For more detailed information on using computer eye tracking devices, see the following references, incorporated herein by reference: Eye Tracking Methodology: Theory and Practice, by Andrew Duchowski, Springer (Jan. 17, 2003); and U.S. Pat. Nos. 6,943,754, 6,886,137 and 6,758,563.
Recently, software programs have been developed that query leading search engines to identify and list search results. For example, one commercially available program trademarked under the name “Copernic Agent” offers a user interface and search toolbar that allow the user to employ several search enhancement features, purportedly making internet searches faster and easier than with standard search engine interfaces. Copernic Agent purports to give the user better search engine results by consulting multiple search engines at once, combining results, removing duplicates, removing broken links, allowing the user to search within results, save result pages on the user's computer for offline browsing, sort results, e-mail results to colleagues, and generate search reports. The toolbar feature may be integrated to Internet Explorer or Microsoft Office, and allows the user to employ Copernic Agent to begin a search directly from the user's web browser or word processor by right-clicking on a word or highlighted phrase to start a search on it. The search the user starts with this toolbar is synchronized and replicated in, and results reported in a Copernic Agent window (which is typically the window in from which the search was invoked). Additional enhancements purport to allow the user to highlight and seek keywords within browsed pages, navigate within results, retain search history, annotate results, delete selected results and filter results. See Copernic Agent Specifications sheet, included as Table 1 at the end of the specification, below. See also U.S. Pat. No. 6,810,395, incorporated herein by reference.
However, no existing internet search engine or toolbar allows a user who is reading, writing or otherwise viewing a document (such as a wordprocessing document or web site article) to highlight or otherwise group multiple selected key words to be searched at any number of selected search engines. Rather, for all known search engines, the queries must be individually entered and searched. This is particularly cumbersome even on a full keyboard and with a large computer screen. For small handheld computers, pda's or cellphones, such extensive text entry is tedious and nearly impossible.
Additionally, known methods of displaying results of searches typically require that the results be displayed in a wholly separate window, thereby necessitating the user to constantly change which window is in the foreground for review. Furthermore, there is no automatic method of including the returned results within a document or window that the user is composing or reviewing. Again, typically the user must cut and paste the results into the document if so desired. Another problem in the prior art is that when one has selected a phrase to search, all of the words of the phrase will be searched. It is not believed that any program has the ability to have the search performed on only the important or keywords of the phrase and automatically eliminating common words (such as “and,” “a,” “the,” “of,” etc.).
The need exists for an improved internet search capability that allows users who are typing, reading or otherwise viewing documents or windows to easily select, identify and group disparate words, text or graphics into logical connected search queries, which are then automatically routed to any number of selected search engines. The need also exists for an internet search capability that allows the user to select the manner in which the results are displayed or incorporated in the document that the user is reading or writing, and from which the search was generated.